package file.test;

import java.io.File;
import java.util.HashMap;
import java.util.function.BiConsumer;


//键盘录入文件夹路径,统计文件夹中每种文件个数
public class FileTest5 {
    //避免返回值复杂,将哈希集合定义为静态成员,方便成员局部方法直接访问
    static  HashMap<String,Integer>hashMap=new HashMap<>();
    public static void main(String[] args) {
        File filePath = FileTest.getFilePath();
        getCount(filePath);
        hashMap.forEach(new BiConsumer<String, Integer>() {
            @Override
            public void accept(String s, Integer integer) {
                System.out.println("."+s+"文件--"+integer+"个");
            }
        });
    }
    public static void getCount(File file){

        File[] files = file.listFiles();
        for (File f:files){
            //判断是不是文件
             if(f.isFile()){
                 //以.为分割,找到文件后缀
                 String[] split = f.getName().split("\\.");
                 String type=split[split.length-1];
                 //hash方法,是否包含键
                 if (!hashMap.containsKey(type)){
                     hashMap.put(type,1);
                 }else {
                     hashMap.put(type,hashMap.get(type)+1);
                 }

             }else {
                 if (f.listFiles()!=null){
                     getCount(f);
                 }

             }


        }
    }
}
